package com.github.elliot.ordercenter.entity;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.Version;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 订单表
 * </p>
 *
 * @author mybatis-plus-generator
 * @since 2025-11-21
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("order_info")
public class OrderInfo implements Serializable {

    private static final long serialVersionUID = 1L;

      /**
     * 主键
     */
        @TableId(value = "id", type = IdType.ASSIGN_ID)
      private Integer id;

      /**
     * 订单号
     */
      private String orderNo;

      /**
     * 客户id
     */
      private String customerNo;

      /**
     * 企业编号
     */
      private String companyNo;

      /**
     * 商城id
     */
      private String mallId;

      /**
     * 商城名称
     */
      private String mallName;

      /**
     * 来源 1:H5商城 2:小程序
     */
      private Integer source;

      /**
     * 订单价格
     */
      private BigDecimal totalAmount;

      /**
     * 现金支付价格
     */
      private BigDecimal cashAmount;

      /**
     * 优惠券金额
     */
      private BigDecimal couponAmount;

      /**
     * 积分抵扣金额
     */
      private BigDecimal pointAmount;

      /**
     * 运费
     */
      private BigDecimal shippingAmount;

      /**
     * 积分值
     */
      private Integer point;

      /**
     * 积分比率
     */
      private BigDecimal pointRatio;

      /**
     * 开票金额
     */
      private BigDecimal invoicePrice;

      /**
     * 支付类型: 积分 现金 现金+积分 
     */
      private Integer payType;

      /**
     * 支付渠道: 1.支付宝 2: 微星
     */
      private Integer orderPayChanel;

      /**
     * 收件人名称
     */
      private String receiverName;

      /**
     * 收件人联系方式
     */
      private String receiverPhone;

      /**
     * 收件人省
     */
      private String receiverProvince;

      /**
     * 收件人市
     */
      private String receiverCity;

      /**
     * 收件人区
     */
      private String receiverDistruct;

      /**
     * 配送方式 0: 邮寄 1: 自取
     */
      private Integer receiverDelivery;

      /**
     * 收货详细地址
     */
      private String receiveAddress;

      /**
     * 自动收货时间
     */
      private LocalDateTime autoReceiveDate;

      /**
     * 收货时间
     */
      private LocalDateTime receiveTime;

      /**
     * 支付时间
     */
      private LocalDateTime payTime;

      /**
     * 订单状态 0:未支付 1:支付中 2:支付成功 3:超时关闭 4:取消
     */
      private Integer status;

      /**
     * 订单售后状态 0:未售后 1:售后中 2:售后完成
     */
      private Integer afterSaleStatus;

      /**
     * 备注
     */
      private String remark;

      /**
     * 对账标识
     */
      private Integer reconciliationFlag;

      /**
     * 结算标识
     */
      private Integer settlementFlag;

      /**
     * 签收时间
     */
      private LocalDateTime signTime;

      /**
     * 创建人
     */
      private String creator;

      /**
     * 修改人
     */
      private String modifier;

      /**
     * 创建时间
     */
      private LocalDateTime createTime;

      /**
     * 修改时间
     */
      private LocalDateTime modifyTime;

      /**
     * 删除标识
     */
      private Integer delFlag;


      public static final String ID = "id";

      public static final String ORDER_NO = "order_no";

      public static final String CUSTOMER_NO = "customer_no";

      public static final String COMPANY_NO = "company_no";

      public static final String MALL_ID = "mall_id";

      public static final String MALL_NAME = "mall_name";

      public static final String SOURCE = "source";

      public static final String TOTAL_AMOUNT = "total_amount";

      public static final String CASH_AMOUNT = "cash_amount";

      public static final String COUPON_AMOUNT = "coupon_amount";

      public static final String POINT_AMOUNT = "point_amount";

      public static final String SHIPPING_AMOUNT = "shipping_amount";

      public static final String POINT = "point";

      public static final String POINT_RATIO = "point_ratio";

      public static final String INVOICE_PRICE = "invoice_price";

      public static final String PAY_TYPE = "pay_type";

      public static final String ORDER_PAY_CHANEL = "order_pay_chanel";

      public static final String RECEIVER_NAME = "receiver_name";

      public static final String RECEIVER_PHONE = "receiver_phone";

      public static final String RECEIVER_PROVINCE = "receiver_province";

      public static final String RECEIVER_CITY = "receiver_city";

      public static final String RECEIVER_DISTRUCT = "receiver_distruct";

      public static final String RECEIVER_DELIVERY = "receiver_delivery";

      public static final String RECEIVE_ADDRESS = "receive_address";

      public static final String AUTO_RECEIVE_DATE = "auto_receive_date";

      public static final String RECEIVE_TIME = "receive_time";

      public static final String PAY_TIME = "pay_time";

      public static final String STATUS = "status";

      public static final String AFTER_SALE_STATUS = "after_sale_status";

      public static final String REMARK = "remark";

      public static final String RECONCILIATION_FLAG = "reconciliation_flag";

      public static final String SETTLEMENT_FLAG = "settlement_flag";

      public static final String SIGN_TIME = "sign_time";

      public static final String CREATOR = "creator";

      public static final String MODIFIER = "modifier";

      public static final String CREATE_TIME = "create_time";

      public static final String MODIFY_TIME = "modify_time";

      public static final String DEL_FLAG = "del_flag";

  }
